Eye diagrams are a conventional format for representing parametric information about signals, and especially digital signals. Various prior art eye diagram testers are known, but we shall call the technique described in xe2x80x9cMETHOD AND APPARATUS FOR PERFORMING EYE DIAGRAM MEASUREMENTSxe2x80x9d and xe2x80x9cCOMPOSITE EYE DIAGRAMSxe2x80x9d (which is the preferred method for use herein), an Eye Diagram Analyzer, or EDA for short.
A modern eye diagram for a digital signal is not so much a trace formed continuously in the time domain (ala an analog oscilloscope), as it is an xe2x80x9ceyexe2x80x9d shape composed of closely spaced points (displayed dots, or illuminated pixels) representing many individual measurement samples (which are (time, voltage) pairs) taken upon separate instances of a signal occurring on a channel of interest, and which were then stored in a memory. Each measurement sample contributes to a displayed pixel. (In a simple case the correspondence is one to one, but the actual case might be many to one or one to many.) The eye shape appears continuous because the collection of pixels is rather dense, and because the signal is sampled at a large number of nearly adjacent locations. Unlike a true continuous technique, however, there may be detached dots that are separated from the main body of the eye shape. (Such detachment is an artifact of sampling.) A further difference with the continuous analog technique is that rare or infrequently occurring events, once sampled, do not appear faint in the display or disappear with the persistence of the CRT""s phosphor. This latter difference is often quite an advantage, since it is often the case that such otherwise xe2x80x9chard to seexe2x80x9d features of the trace are very much of interest.
In an eye diagram, an example of which is shown in FIG. 1, the vertical axis is voltage and the horizontal axis represents the differences in time (i.e., various offsets) between some reference event and the locations for the measurement samples. The reference event: is generally an edge of a clock signal in the system under test; represents directly or through some fixed delay the expected point in time when the value of an applied data signal would be captured by some receiving circuit in an SUT (System Under Test); and, is derived from an application of the SUT""s clock to the Eye Diagram Analyzer. The time axis will generally have enough length to depict one complete eye-shape (cycle of an SUT signal) centered about the reference, with sometimes perhaps several additional eyes (cycles) before and after.
To one not familiar with eye diagrams FIG. 1 looks like a poorly synchronized or unreliably triggered trace for a periodic digital signal. Let us dwell here briefly to dispel any mystery about why an eye diagram is the way it is. To begin with, it is assumed that a (non-return-to-zero) work signal being measured is synchronous with something, typically a system clock. Let us further suppose that work signal transitions are expected to occur on falling edges of the system clock, so that the work signal is expected to be stable for sampling on the rising edge of the system clock. If we always sampled the work signal at the same time (say, at the rising edge of the system clock), then the results would be repeated instances of one point on the work signal. If the work signal always had the same value (a steady one or a steady zero), then those repeated instances would be the same (time, voltage) values, and would contribute multiple instances of the same single point to the eye diagram. But keep these two things in mind: One, we do not always sample at the exact same time, but vary it on either side of the reference, by up to, or even more than, a clock period. Two, the work signal is typically not stuck at some steady value. It is sometimes a one, sometimes a zero, and sometimes it does not transition.
So, if the work signal were stuck at one or zero, then the varying sample times would produce adjacent points forming straight lines at either the voltage for one or for zero. And if the work signal had regular transitions of one zero one zero one zero . . . then the trace would resemble a square wave (as seen on a ""scope). But most work signals are not that regular: they are sometimes high, sometimes low, and sometimes they stay at the same value from clock cycle to clock cycle. So the eye diagram contains the superposition of all the individual oscillographic trace segments of the two straight lines (one for always high, one for always low) and the transitions from high to low and from low to high. For a properly working signal the central region of each eye is empty, since the good signal never transitions except when it is supposed to.
To continue, then, different (X, Y) regions within a (sample) space containing an eye diagram represent different combinations of time and voltage. Assume that the eye diagram is composed of a number of pixels, and temporarily assume that the resolution is such that each different (X, Y) pixel position can represent a different combination of time and voltage (and vice versa), which combinations of time and voltage we shall term xe2x80x9cmeasurement points.xe2x80x9d What the preferred Eye Diagram Analyzer measures is the number of times, out of a counted number of clock cycles, that the signal on the channel being monitored passed through a selected measurement point. Then another measurement point is selected, and the process repeated until there are enough measurement points for all the pixels needed for the display. Points along the visible eye diagram trace describe something about those (time, voltage) combinations that were observed to actually occur in the data signal under test. The value of a (time, voltage) combination is represented by its location, but the color or intensity of the measured result can be determined in a way that assists in appreciating the meaning of the measured data. The range over which the measurement points are varied is called a xe2x80x9csample spacexe2x80x9d and is defined during a measurement set-up operation. And in reality, we define the sample space and the resolution for neighboring measurement points first, start the measurement and then let the analyzer figure out later how to ascribe values to the pixels of the display. The xe2x80x9cdisplayxe2x80x9d is, of course, an arbitrary graphic output device such as a printer or an X Window of some as yet unknown size in a window manager (e.g., X11) for a computer operating system. (A one-to-one correspondence between display pixels and measurement points is not required. It will be appreciated that it is conventional for display systems, such as X Windows, to figure out how to ascribe values to the pixels for an image when the correspondence between the display""s pixel locations and the measurements that are the original image description is not one-to-one.)
Thus it is that a modern eye diagram trace itself is thus not a single time domain waveform (think: xe2x80x98single valued functionxe2x80x99), but is instead equivalent to an accumulation of many such instances; it can present multiple voltage (Y axis) values for a given time value (X axis). So, for example, the upper left-hand region of an eye (see FIG. 1) might represent the combination of an adequate logical one at an adequately early time relative to the SUT""s clock signal, and an eye diagram whose trace passes robustly through that region indicates to us that a signal of interest is generally achieving a proper onset of voltage at a proper time. Furthermore, we note that there are also other regions, say, near the center of an eye, that are not ordinarily transited by the trace, and which if that were indeed to happen, would presumably be an indication of trouble. Thickening of the traces is indicative of jitter, a rounding of a corner is indicative of slow transitions, and so on. An eye diagram by itself cannot reveal in the time domain which isolated instance (cycle) of the data signal caused such an exception, as other types of measurements might, but it does provide timely and valid information about signal integrity within a system as it operates. In particular, by incorporating various rules for determining the intensity and color of the displayed pixels of the eye diagram trace (e.g., very long, perhaps xe2x80x9cinfinitexe2x80x9d, persistence) the eye diagram presents readily seen evidence of infrequently occurring failures or other hard to spot conditions.
The EDA of the incorporated xe2x80x9cMETHOD AND APPARATUS FOR PERFORMING EYE DIAGRAM MEASUREMENTSxe2x80x9d operates by applying the clock signal from the SUT to a comparator circuit whose output is then delayed by a fixed amount, say about a half cycle, or some integral multiple thereof. The delayed clock comparison is then the reference mentioned above, and it used in determining when individually threshold-compared and then delayed data signals (the SUT data channels) are sampled;
This sampling of the individually threshold-compared and then delayed data signals is actually performed twice in rapid succession, a very brief (but selectable) amount of time apart. If these two successive samples are different, then the input signal transitioned through the voltage region of interest, and we call this a hit. This is the manner of sampling that accomplishes the taking of the (time, voltage) pairs that are the basic data of the eye diagram measurement, and it is an alternative to digitizing with a conventional Analog-to-Digital Converter (ADC). We use it because it works at frequencies that are impractical for ADCs.
It is typical for an Eye Diagram Analyzer to perform measurements simultaneously on a plurality of different data signals, which we shall call channels.
Different sampling voltages are obtained by varying the comparison thresholds for the data signals. In one embodiment different times are obtained by varying the amount of delay in the data channel path, while leaving the clock signal path essentially fixed. In another embodiment the delay in the data channels is held constant (and preferably at a low value) and the delay in the clock signal path is varied. Skew between data channels may removed by various techniques.
An eye diagram, then, is information about signal behavior at various time-voltage (X, Y) combinations. A simple system would be to indicate that the signal was xe2x80x9ctherexe2x80x9d or that it wasn""t. That is, respectively put either an illuminated pixel or a non-illuminated pixel at the various (X, Y) locations for the different instances of xe2x80x9cthere.xe2x80x9d This is about what an analog oscilloscope would do if it were used to create an eye diagram for some signal. However, we would notice that some parts of the trace were brighter than others, and understand that this is a (somewhat useful) artifact caused by finite persistence on the one hand (old stuff goes away) and relative rates of occurrence on the other. That is, the display ends up having an intensity component at each pixel location. This is fine as far as it goes, but we would rather not rely upon the persistence of phosphor for this effect, since the most interesting indications are apt to also be the faintest. Since we are not using an analog ""scope anyway, and have an instrument (an EDA) with memory (akin to a digital oscilloscope, timing analyzer or logic analyzer), we can gather frequency of occurrence (xe2x80x9cattendancexe2x80x9d ?) or degree of similarity (xe2x80x9cdispersionxe2x80x9d ?) data and decide after the fact what distinguishing pixel value is to go with each (X, Y) pixel location. Those pixel values can be variations in color, intensity, or both, according to whatever scheme is in use (and there are several). The general idea is that the operator configures the EDA to render the display in a way that makes the condition he is most interested is quite visible, and also such that the eye diagram as a whole is generally easy to interpret. Thus, the reader is reminded that there is usually more going on than simply the presence or absence of dots at some series of (X, Y) locations, and that we often have recourse to the notion of an associated xe2x80x9cpixel valuexe2x80x9d at each (X, Y) position in the display. We shall denote with the symbol xe2x80x9cVxe2x80x9d whatever that xe2x80x9cpixel valuexe2x80x9d is. V might be a single item, such as xe2x80x9cONxe2x80x9d or xe2x80x9cOFFxe2x80x9d or it might be an intensity without the notion of color. On the other hand, V will often expand (be rendered) into a whole series of parameters VR, VG, VB, where each such parameter represents the intensity of an associated primary color (whose combination is perceived as a resultant color. In any event, we shall simply write (X, Y, V)i, or perhaps (Xi, Yi, Vi), depending upon which notation seems to work best for our needs at the time, and not bother to indicate any associated further expansion of a Vi into its rendered component parameters of VR, VG, VB. (And don""t forget that the (X, Y)i are merely handy display system coordinate substitutes for writing the phrase xe2x80x9c(time, voltage)i pairsxe2x80x9d.)
It is often the case that the utility of an eye diagram is needed for characterizing or discovering circumstances that are both erroneous and very occasional. It is also the case that some SUTs have a great many channels that are subject to investigation. Some busses have hundreds of member signals, for example. When faced with such circumstances, the xe2x80x9cluxuryxe2x80x9d of having one individual eye diagram trace per SUT signal becomes an oppressive burden. We might measure it that way, and we can indeed display it that way (with four or maybe eight channels at a time), but we likely will have lost all patience and become disgusted with the whole process before we complete looking at twenty-five or more sets of four or more traces each. Surely that is the wrong way to go about analyzing the data! But on the other hand, automating the investigation is risky. Masking measurements, for example, essentially require that we formally decide ahead of time what is not of interest. The analyzer can apply the mask for us automatically and at great speed, but we will never know for sure that there was not some irregularity in there that met the mask criteria, and yet that would have been of interest to us anyway, if we had only seen it.
Accordingly, another tool is needed to assist in eye diagram analysis for situations involving a large number of channels. The needed tool is the merging into one combined eye diagram presentation of the data for separate xe2x80x9ccomponentxe2x80x9d eye diagram measurements for a useful grouping of related signals. Perhaps this is as simple as taking all the signals together as one single group and producing a single combined eye diagram from the merged data. Say, for example, each separate signal would produce an eye diagram of the same general shape as the other. Then we might simply combine them as if they were being stacked on top of one another, so to speak. That is, create a resulting eye diagram that is the superposition of the component eye diagrams. (The user of a ""scope might approximate such an outcome by adjustment of vertical position controls to superimpose separate traces.) Alternatively, the signals of interest might, for timing or other signal format reasons, be construed as belonging to some family for one group and to a different family for another group. In that case we are inclined to consider each group separately, and then produce two separate combined eye diagrams, each of which corresponds to one of the groups. In any event, the operator can instruct the EDA to merge the data of individual eye diagrams for a specified plurality (family) of signals into one combined eye diagram. (However, we are going to combine copies of the arithmetic values for the sampled component data, and not mess with any notion of adjusting vertical position!) So now we have a combined eye diagram that probably has fat traces (indicating that, as expected, not all signals have simultaneous and identical rise times, voltage levels, etc.). Independent of that, we now expect that, having merged everything together, if there is something unusual going on, even if only occasionally forjust one channel, we will, in principle, be able to see it. (Assuming, of course, that we do not implement some notion of short persistence.) Another assumption in this description is that the collection of data points comprising each of the component eye diagrams has the same general meaning, or type of rule for interpretation, as do the collections of data points in each of the other component eye diagrams.
We shall term such a combined eye diagram, created from the merging of data for individual component eye diagrams, a xe2x80x9ccompositexe2x80x9d eye diagram.
In particular, then, an eye diagram analyzer can assign a plurality of SUT data signals to be members of a labeled group of channels for an eye diagram analyzer. There may be a plurality of such groups. In addition to a superposition in an (X, Y) display space of the various ixe2x80x94many (X, Y, V)xe2x80x94valued pixels for individual component eye diagrams associated with that group, other measured data for those pixels within a group can be merged in various different modes to produce corresponding composite eye diagram presentations. A central issue is to decide how to combine Vi from one component eye diagram with the corresponding Vi of another component eye diagram. They are combined to produce corresponding xe2x80x9cdensitiesxe2x80x9d Di of some sort, and we can write either (Xi, Yi, Di) or simply (X, Y, D)i so long as we remember just what D is. If the Di are rendered with color or intensity, the resulting composite eye diagram includes a representation (the Di) of some density of transitions at each point (Xi, Yi), relative to that group as a whole. The full disaster for the various different types of density is explained in the incorporated xe2x80x9cCOMPOSITE EYE DIAGRAMSxe2x80x9d.
So, we have arrived at the following place. We have an instrument for measuring data signals and producing eye diagrams. It is preferred that the instrument be an EDA as described above and set out in detail in the incorporated Applications. That, however, it not essential for what is to follow, as it will be appreciated that the measurement tools and methods that are described below can be used in conjunction with other techniques for measuring data signals and producing eye diagrams. At a minimum, however, any such technique should be a digital one, so that collections of measured data in memory can be analyzed. The eye diagrams themselves can be individual component eye diagrams (i.e., relating to a single channel) or they can be composite eye diagrams. As eye diagrams of whatever sort, they will have time and voltage axes associated therewith, and useful inferences can be made about signal behavior from an examination of various aspects of the size and shape of the eye diagram. These include time intervals and voltage excursions obtained from various locations within the eye diagram. The measurement hardware can generally measure to accuracies greater than we can estimate from the displayed results merely by looking at the eye diagram. And merely looking at the eye diagram does not enable another person (or us at a latertime!) to appreciate exactly where on the eye diagram the estimate was made. Furthermore, if the eye diagram is made with the EDA techniques set out above, there is more data content in the eye diagram than just (time, voltage) pairs. Each pixel is an (X, Y, V)i, where V is has meaning that derives from the number of hits and the number of measured clock cycles (and for composite eye diagrams, perhaps also the number of channels). We should like to be able to inquire about the Vi with the ease and accuracy that we have come to expect for inquiring about time and voltage.
So far, so good. But exactly what measurements are useful, and if we are not to simply estimate by looking, how do we make these useful measurements ?
Once an eye diagram measurement is begun and there is an eye diagram displayed, any of eight different on-screen measurement tools may be used singly, or in combination. Each measurement involves indicating with cursors and line segments regions of the eye diagram that are of interest, and a parameter or parameters associated with each measurement tool in use is reported in a (usually) separate area of the display. An Eye Limits measurement allows the specification of a point within an eye diagram, whereupon it finds and reports the eye diagram coordinates first encountered along horizontal lines extended from the selected point. The coordinates of the point itself are also reported. A Four Point Box measurement allows the construction on the eye diagram of a rectangle having sides parallel to the coordinate axes of the eye diagram. The coordinates of the rectangle are reported, as well as information about the number of points on the eye diagram that occur on or within the rectangle. A Six Point Box and a Diamond may be defined and used in a like fashion. A Slope Tool uses two end points to define an intervening line segment, whose slope and location can be adjusted to match some region of interest on the eye diagram. The pertinent information about the line segment and its end points is then reported. A Histogram measurement may be performed on any horizontal or vertical slice of the eye diagram. A horizontal slice represents a portion of the time axis, while a vertical slice represents a portion of the voltage axis. The location and extent of the slice can be specified by manipulating the end points of a line segment representing the slice. A movable cursor appears on both the line defining the slice and within the histogram, and they each represent the same location in either time or voltage. Either cursor can be grabbed and moved, which then also moves the other. Depending upon the axis of the slice, the histogram is of a distribution of number of hits versus either time axis location at a fixed voltage, or voltage at a fixed time location. The scale for the number of hits for either histogram may be either linear or logarithmic. Finally, there are two independently positionable cursors each having long vertical and horizontal lines therethrough, and whose independent coordinates (positions) are reported, as well as number of hits and associated channel information for those locations on the eye diagram (should the eye diagram go through such a location).